const inquirer = require('inquirer')

inquirer
  .prompt([
    {
      type: 'confirm',
      message: '是否使用监听？',
      name: 'watch',
      default: false,
      prefix: '前缀'
    },
    {
      type: 'confirm',
      message: '是否进行文件过滤？',
      name: 'filter',
      default: false,
      suffix: '后缀',
      when: function(answers) {
        // 当watch为true的时候才会提问当前问题
        return answers.watch
      }
    },
    {
      type: 'input',
      name: 'host',
      message: '请输入host', // 问题
      default: 'unnamed', // 默认值
      prefix: 'prefix',
      validate: function(input) {
        if (input.length > 10) {
          return [1, 2, 3]
        }
        return true
        // var done = this.async()
        // setTimeout(() => {
        //   if (input.length > 10) {
        //     // 输入验证：name长度不允许超过255
        //     done('项目名称超过限制')
        //   }
        //   done(null, true)
        // }, 500)
      }
    },
    {
      type: 'list',
      name: 'type',
      message: '请选择',
      suffix: '123',
      choices: ['item1', 'item2', 'item3', 'item4'], // 可选选项
      default: 'item2',
      filter: function(val) {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(val)
          }, 500)
        })
      }
    },
    {
      type: 'rawlist',
      messgae: '请选择',
      name: 'rawlist',
      choices: ['AAAA', 'BBBB', 'CCCC'],
      default: 'BBBB',
      filter: val => {
        return val.toLowerCase()
      }
    },
    {
      type: 'expand',
      message: '请选择一种水果：',
      name: 'fruit',
      suffix: 'a/o/p',
      choices: [
        {
          key: 'a',
          name: 'Apple',
          value: 'apple'
        },
        {
          key: 'o',
          name: 'Orange',
          value: 'orange'
        },
        {
          key: 'p',
          name: 'Pear',
          value: 'pear'
        }
      ]
    },
    {
      type: 'checkbox',
      message: '选择颜色:',
      name: 'color',
      choices: ['red', 'blur', 'green', 'yellow'],
      default: ['red'],
      pageSize: 2 // 设置行数
    },
    {
      // out :wq
      type: 'editor',
      name: 'ediotr',
      default: '123',
      message: '请输入：'
    }
  ])
  .then(answers => {
    console.log(answers)
  })
